Private communication sessions in an online social networking system

ABSTRACT

An online social networking system receives user interactions with a content item from client devices of users of the social networking system. A public user interface displaying at least some of the received user interactions with the content item is provided for display on each of the client devices. A request to initiate a private session associated with the content item is received from a client device of a first user. The request identifies a subset of the users including the first user. User interactions with the content item from client devices of the subset of the users are received within the private session. A private user interface for interacting with the content item is provided for display on each of the client devices of the subset of the users. The private user interface displays the user interactions received within the private session.

BACKGROUND

This invention relates generally to online social networking systems,and in particular to initiation of private communication sessions viaclient devices within a social networking system.

Online social networking systems often present electronic media contentitems to users. For example, a social networking system may present anonline news article in a newsfeed. Such content items are viewed byusers on client devices, for example, a laptop or a mobile device.Social networking systems allow users to connect and interact with eachother, and allow users to post and interact with content items displayedby the system. For example, users may interact with content items on asocial networking system by posting comments related to the contentitem.

Conventional techniques for presenting user interactions with contentitems to other users may display a user's comments to all other users ofthe social networking system. Thus, users sometimes must scroll througha long list of comments on a content item without a way to readily focuson certain user's comments. In addition, conventional techniques mayrequire a user to use a separate messaging application for privatemessages, thereby providing more limited user experience. A user may beless likely to engage with the user's social network if certain types ofcommunications require extra steps by the user to access a separateapplication, or if otherwise it is not quick and easy for the user tocommunicate in the desired way with other users.

SUMMARY

A social networking system allows users to have private, sideconversations with other users when commenting on content items postedin a social networking system, such that the side conversation is notavailable to the general public but is available to the users involvedin the conversation. For example, some content items may be publiclyavailable such that any user of the social networking system can providecomments on the content item, and the content item may have hundreds ofcomments by users that do not know one another. The social networkingsystem allows for users to thus also provide comments in a more privateway that are only visible to selected connections of the user in thesocial networking system.

In an embodiment, the social networking system receives userinteractions with a content item from client devices of users of thesocial networking system. The system provides for display, on eachclient device, a public user interface including at least some of thereceived user interactions with the content item. The system receives,from a client device of a first user, a request to initiate a privatesession associated with the content item. The request identifies asubset of the users including the first user who will be involved in theconversation associated with the private session. The system receives,within the private session, user interactions with the content item fromclient devices of the subset of the users, such as user comments on thecontent item by each of the users involved in the private session. Thesystem provides for display on each client device of the subset of theusers a private user interface for interacting with the content item.The private user interface displays the user interactions receivedwithin the private session.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system environment and architecture of asocial networking system, in accordance with an embodiment.

FIG. 2 is an illustration of the process for initiating a privatesession for content items in a social networking system, in accordancewith an embodiment.

FIG. 3 is an illustration of subsets of users of the social networkingsystem, in accordance with an embodiment.

FIG. 4 is an illustration of a public user interface for userinteractions with a content item displayed on a client device, inaccordance with an embodiment.

FIG. 5 is an illustration of a private user interface displayed on aclient device of a user of a social networking system, in accordancewith an embodiment.

FIG. 6 is an illustration of the process for sending real-time userinteractions with content items in a social networking system, inaccordance with an embodiment.

FIG. 7 is an illustration of a content item displayed on a client deviceof a user of a social networking system, in accordance with anembodiment.

FIG. 8 is an illustration of a second user connected to a first userwithin the social networking system, in accordance with an embodiment.

FIG. 9 is an illustration of a widget identifying the second userdisplayed on a client device of the first user of the social networkingsystem, in accordance with an embodiment.

FIG. 10 is an illustration of a widget identifying a type of emotionassociated with a user interaction displayed on a client device of auser of the social networking system, in accordance with an embodiment.

FIG. 11 is an illustration of a field for receiving comments by thefirst user on a client device, in accordance with an embodiment.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

A social networking system provides content items for display on aclient device, such as on a newsfeed or a “permalink” (a view of thecontent item itself, such as a separate page that the user is taken towhen selecting a content item in the newsfeed for viewing, where theseparate page includes only that content item and associatedcomments/reactions). Associated with each content item, the systemconfigures for display on the client device one or more user interfacesfor interacting with other client devices about the content item viacommunication sessions. Each user interface allows a user to switchbetween different sessions (conversations) involving different groups ofother users of the social networking system. Each content item may haveone or more messages in a public session configured for display on thepublic user interface associated with the content item. The public userinterface includes for display all comments that are marked public andposted in the public session with regard to the content item.

The content item is also associated with one or more private userinterfaces for communicating via private sessions, in which the user canpost comments to a social networking connection or a group of socialnetworking connection that are a subset of the users who can view thecomments in the public user interface. The system may receive, from auser viewing a content item, a selection of one of the private userinterfaces for communicating via private sessions. The social networkingsystem provides for display to the user messages amongst the user andthe social networking connection or the group of social networkingconnection in a private user interface. For example, the private userinterface could be a tab in or adjacent the content item that identifiesthe users in the private session. Similarly, there can be a public tabthat includes all comments on the content item. Thus, the viewing usercan switch back and forth between the public comments and the privateconversations the user is having with one or more groups of usersregarding the content item.

When the social networking system receives a user interaction from aclient device requesting a new private session, the system configuresfor display messages from one or more social networking connections ofthe user who are to be included in the private session via the privateuser interface. The system receives messages from the user via theprivate user interface on the client device and provides these fordisplay to the other one or more users in the private session separatelyviewing the content item. The system may also receive a request from anew user to initiate a private session with the user related to acontent item. The system provides a notification to the user regardingthe initiation of the new private session and configures for display anew private user interface on the user's client device.

System Environment and Architecture

FIG. 1 is a block diagram of a system environment and architecture of asocial networking system 110, in accordance with an embodiment. Thesystem environment shown in FIG. 1 includes one or more client devices100, a network 105, one or more third-party systems 112, and the socialnetworking system 110. FIG. 1 and the other figures use like referencenumerals to identify like elements. A letter after a reference numeral,such as “100 a,” indicates that the text refers specifically to theelement having that particular reference numeral. A reference numeral inthe text without a following letter, such as “100,” refers to any or allof the elements in the figures bearing that reference numeral, e.g.,“100” in the text refers to reference numerals “100 a” and/or “100 b” inthe figures. In alternative configurations, different and/or additionalcomponents may be included in the system environment. The embodimentsdescribed herein can be adapted to online systems that are not socialnetworking systems.

The social networking system 110 shown in FIG. 1 sends content itemsassociated with users of the social networking system 110 for display onclient devices 100 of the users of the social networking system 100. Theclient devices 100 are one or more computing devices capable ofreceiving user input as well as transmitting and/or receiving data viathe network 105. In one embodiment, a client device 100 is aconventional computer system, such as a desktop or laptop computer.Alternatively, a client device 100 may be a device having computerfunctionality, such as a personal digital assistant (PDA), a mobiletelephone, a smartphone or another suitable device. Each client device100 is configured to communicate via the network 105. In one embodiment,a client device 100 executes an application allowing a user of theclient device 100 to interact with the social networking system 110. Forexample, a client device 110 executes a browser application to enableinteraction between the client device 100 and the social networkingsystem 110 via the network 105. In another embodiment, a client device100 interacts with the social networking system 110 through anapplication programming interface (API) running on a native operatingsystem of the client device 100, such as IOS® or ANDROID™.

The network 105 may comprise any combination of local area and wide areanetworks employing wired or wireless communication links. In oneembodiment, the network 105 uses standard communications technologiesand protocols. For example, the network 105 includes communication linksusing technologies such as Ethernet, 802.11, worldwide interoperabilityfor microwave access (WiMAX), 3G, 4G, code division multiple access(CDMA), digital subscriber line (DSL), etc. Examples of networkingprotocols used for communicating via the network 105 includemultiprotocol label switching (MPLS), transmission controlprotocol/Internet protocol (TCP/IP), hypertext transport protocol(HTTP), simple mail transfer protocol (SMTP), and file transfer protocol(FTP). Data exchanged over the network 105 may be represented using anysuitable format, such as hypertext markup language (HTML) or extensiblemarkup language (XML). In some embodiments, all or some of thecommunication links of the network 105 may be encrypted using anysuitable technique.

One or more third party systems 112 may be coupled to the network 105for communicating with the social networking system 110. In oneembodiment, a third party system 112 is an application providercommunicating information describing applications for execution by aclient device 100 or communicating data to client devices 100 for use byan application executing on the client device. In other embodiments, athird party system 112 provides content or other information forpresentation via a client device 100. A third party website 112 may alsocommunicate information to the social networking system 110, such asadvertisements, content, or information about an application provided bythe third party website 112.

The social networking system 110 shown in FIG. 1 includes a user profilestore 115, a content store 120, an edge store 125, a user interactionstore 130, a user interaction manager 135, a newsfeed manager 145, and auser interface server 140. In other embodiments, the social networkingsystem 110 may include additional, fewer, or different components forvarious applications. Conventional components such as networkinterfaces, security functions, load balancers, failover servers,management and network operations consoles, and the like are not shownso as to not obscure the details of the system architecture.

Each user of the social networking system 110 is associated with a userprofile, which is stored in the user profile store 115. A user profileincludes declarative information about the user that was explicitlyshared by the user and may also include profile information inferred bythe social networking system 110. In one embodiment, a user profileincludes multiple data fields, each describing one or more attributes ofthe corresponding user of the social networking system 110. Examples ofinformation stored in a user profile include biographic, demographic,and other types of descriptive information, such as user profile images,work experience, educational history, gender, hobbies or preferences,location and the like. A user profile may also store other informationprovided by the user, for example, images or videos. In certainembodiments, user profile images of users may be tagged withidentification information of users of the social networking system 110.A user profile in the user profile store 115 may also maintainreferences to actions by the corresponding user performed on contentitems in the content store 120 and stored in the user interaction store130.

In embodiments, the user profile store 115 may include, for each user,an avatar, a screenname, and the user's real name. An avatar is an iconor figure representing a particular user in computer games, Internetforums, social networking systems, etc. A screenname is a uniquesequence of characters that a user may choose to use for identificationpurposes when interacting with others online, as in computer games,instant messaging, forums, and via the social networking system 110.

The social networking system 110 may continuously update the userprofile for a user with the geolocation of the user's client device 100.A user's geolocation may be determined by the social networking system110 based on information sent by a client device's GPS chip andsatellite data, which mapping services can map. When a GPS signal isunavailable, the social networking system 110 may use information fromcell towers to triangulate a client device's position or GPS and cellsite triangulation (and in some instances, local Wi-Fi networks) incombination to zero in on the location of the client device 100; thisarrangement is called Assisted GPS (A-GPS). The social networking system110 may also determine the geolocation distance between two clientdevices 100 a and 100 b by using the Haversine formula to calculate thegreat-circle distance between two points, as a straight line distancebetween the two client devices, which are associated with geolocationcoordinates in terms of latitude and longitude, etc.

The content store 120 stores electronic media objects, which eachrepresent various types of content. In one embodiment, objects in thecontent store 120 represent single pieces of content or content “items.”Examples of content types represented by a content item include a pagepost, a status update, a photograph, a video, a link, a shared contentitem, a gaming application achievement, a check-in event at a localbusiness, a brand page, etc. Social networking system 110 users maycreate content items stored by the content store 120, such as statusupdates, photos tagged by users to be associated with other contentitems in the social networking system, events, groups or applications.In some embodiments, content items are received from third-partyapplications or third-party applications separate from the socialnetworking system 110. Users of the social networking system 110 areencouraged to communicate with each other by posting content items ofvarious types of media through various sessions. This increases theamount of interaction of users with each other and increases thefrequency with which users interact within the social networking system110.

The user interaction manager 135 receives communications about userinteractions internal to and/or external to the social networking system110, populating the user interaction store 130 with information aboutuser interactions. Interactions received by the user interaction manager135 may include expressing an emotional preference for a content item byclicking on an icon representing a type of emotion, e.g., “like,”“love,” “haha,” “wow,” “sad,” “angry,” etc., sharing a content item froma client device 100 a by sending it to the client device 100 b ofanother user, commenting on a content item, checking-in to a physicallocation linked to a content item, joining a user group linked to acontent item, adding a connection to another user, sending a message toanother user, uploading an image, reading a message from another user,viewing content associated with another user, attending an event postedby another user, among others. In addition, a number of actions mayinvolve a content item and one or more particular users, so theseactions are associated with those users as well and stored in the userinteraction store 130.

The user interaction manager 135 may determine the number of users N_(v)of the social networking system currently viewing a particular contentitem from the received communications about user interactions internalto and/or external to the social networking system 110. The userinteraction manager 135 may determine the time a user performed aninteraction by a timestamp in the data representing the interaction sentby the client device 100 to the social networking system 110. The userinteraction manager 135 may identify users within the social networkingsystem 110 who each performed a user interaction with a content itemwithin a certain time period.

The user interaction store 130 may be used by the social networkingsystem 110 to track user interactions on the social networking system110, as well as interactions on third party systems 112 that communicateinformation to the social networking system 110. Users may interact withvarious content items on the social networking system 110, andinformation describing these interactions is stored in the userinteraction store 130. Examples of interactions with content itemsinclude: commenting on posts, sharing links, and checking-in to physicallocations via a mobile device, accessing content items, etc. Additionalexamples of interactions with content items on the social networkingsystem 110 that are included in the action store 130 include commentingon a photo album, communicating with a user, establishing a connectionwith an content item, joining an event to a calendar, joining a group,creating an event, authorizing an application, using an application,expressing a preference for an content item (“liking” the content item)and engaging in a transaction.

Each interaction of a user with a content item may have a type ofemotion associated with the user interaction, e.g., “like,” “love,”“haha,” “wow,” “sad,” “angry,” etc. The user interaction store 130 maystore icons corresponding to emotion types, where each icon includesinformation identifying an emotion type. Additionally, the userinteraction store 130 may record a user's interactions with otherapplications operating on the social networking system 110. In someembodiments, data from the user interaction store 130 is used to inferinterests or preferences of a user, augmenting the interests included inthe user's user profile and allowing a more complete understanding ofuser preferences.

The social networking system 110 may determine the type of emotionassociated with a user interaction with a content item performed by auser by storing a mapping from user interactions to types of emotionsassociated with the user interactions. For example a user interactionincluding a user clicking on a “heart” icon may map to an emotion typeof “love.” The social networking system 110 may store the mapping fromuser interactions to types of emotions as a mapping function, a mappingdiagram, or a relational database, as described below with reference toFIGS. 7 and 8. The social networking system 110 may receive, from aclient device 100 of the user, the user interaction with the contentitem performed by the user. The social networking system 110 mayidentify the type of emotion corresponding to the received userinteraction with the content item performed by the user based on themapping.

In one embodiment, an edge store 125 stores information describingconnections between users and other content items on the socialnetworking system 110 as edges. Some edges may be defined by users,allowing users to specify their relationships with other users. Forexample, users may generate edges with other users that parallel theusers' real-life relationships, such as friends, co-workers, partners,and so forth. Other edges are generated when users interact with contentitems in the social networking system 110, such as when a user interactswith a content item by expressing a preference for the content item,where a type of emotion is associated with the user interaction, e.g.,“like,” “love,” “haha,” “wow,” “sad,” “angry,” etc. Other edges aregenerated when users interact with content items in the socialnetworking system 110, such as expressing interest in a page on thesocial networking system, sharing a link with other users of the socialnetworking system, and commenting on posts made by other users of thesocial networking system.

In one embodiment, an edge may include various features eachrepresenting characteristics of interactions between users, interactionsbetween users and content item, or interactions between content items.For example, features included in an edge describe the number of pastinteractions I₁₂ between a first user (client device 100 a) and a seconduser (client device 100 b), whether the number of past interactions I₁₂exceed a threshold number (I₁₂>T₁₂), the rate of interaction between twousers, how recently two users have interacted with each other, the rateor amount of information retrieved by one user about an content item, orthe number and types of comments posted by a user about an content item.The features may also represent information describing a particularcontent item or user. For example, a feature may represent the level ofinterest that a user has in a particular topic, the rate at which theuser logs into the social networking system 110, or informationdescribing demographic information about a user. Each feature may beassociated with a source content item or user, a target content item oruser, and a feature value. A feature may be specified as an expressionbased on values describing the source content item or user, the targetcontent item or user, or interactions between the source content item oruser and target content item or user; hence, an edge may be representedas one or more feature expressions.

The edge store 135 also stores information about edges, such as affinityscores for content items, interests, and other users. Affinity scores,or “affinities,” may be computed by the social networking system 110over time to approximate a user's affinity for a type of emotionassociated with user interactions, an content item, interest, and otherusers in the social networking system 110 based on the actions performedby the user. For example, if there are six types of emotion associatedwith user interactions—“like,” “love,” “haha,” “wow,” “sad,” and“angry”—the edge store 135 may determine a user's affinity for the typeof emotion “like” as the number of times the user interacted withcontent items by using the “like” emotion type (N_(like)) divided by thetotal number of times the user interacted with content items across allsix reaction types (N). The edge store 135 may determine the user'saffinity for the emotion type “like” as N_(like)/N. The socialnetworking system 110 may determine whether the measure of affinity ofthe user for a reaction type (e.g., “like”) exceeds a threshold numberT, i.e., whether (N_(like)/N)>T.

The social networking system 110 may determine the topic of a contentitem from keywords in the content item. The topics of the socialnetworking system 110 may be specified by a third-party system 112 orextracted by a topic extraction engine of the social networking system110. In one embodiment, the social networking system 110 includes atopic extraction engine, which identifies one or more topics associatedwith content items in the content store 120. To identify topicsassociated with content items, the topic extraction engine identifiesanchor terms included in a content item and determines a meaning of theanchor terms as further described in U.S. application Ser. No.13/167,701, filed Jun. 24, 2011, which is hereby incorporated byreference in its entirety. For example, the topic extraction enginedetermines one or more topics associated with a content item maintainedin the content store 120. The one or more topics associated with acontent item are stored in the content store 120. Structured informationassociated with a content item may also be used to extract a topicassociated with the content item.

The social networking system 100 may select two users based on anaffinity between the first user (client device 100 a) and the seconduser (client device 100 b) based on their interactions with contentitems of a particular topic. The social networking system 100 maydetermine the number of past user interactions between users and contentitems corresponding to the topic. The social networking system 100 mayselect the user having the highest number of past user interactionsbetween the user and content items corresponding to the topic.

Computation of affinity is further described in U.S. patent applicationSer. No. 12/978,265, filed on Dec. 23, 2010, U.S. patent applicationSer. No. 13/690,254, filed on Nov. 30, 2012, U.S. patent applicationSer. No. 13/689,969, filed on Nov. 30, 2012, and U.S. patent applicationSer. No. 13/690,088, filed on Nov. 30, 2012, each of which is herebyincorporated by reference in its entirety. Multiple interactions betweena user and a specific content item may be stored as a single edge in theedge store 125. Alternatively, each interaction between a user and aspecific content item is stored as a separate edge. In some embodiments,connections between users may be stored in the user profile store 115,or the user profile store 115 may access the edge store 125 to determineconnections between users.

The newsfeed manager 145 may generate content items for presentation toa user based on information in the user interaction store 130 and in theedge store 125 or may select candidate content items included in thecontent store 120. One or more of the candidate content items areselected and presented to the user by the newsfeed manager 145. Forexample, the newsfeed manager 145 receives a request to present one ormore content items to a first user associated with a client device 100a. The newsfeed manager 145 accesses one or more of the user profilestore 115, the content store 120, the user interaction store 130, andthe edge store 125 to retrieve information about the first user (clientdevice 100 a). Stories or other data associated with users connected tothe first user (client device 100 a), e.g., a second user associatedwith a client device 100 b, may be retrieved. The retrieved contentitems are analyzed by the newsfeed manager 145 to identify contentlikely to be relevant to the first user. For example, content itemsassociated with users not connected to the first user or content itemsassociated with users for which the first user has less than a thresholdaffinity are discarded. Based on various criteria, the newsfeed manager145 selects one or more of the candidate content items for presentationto the first user.

The newsfeed manager 145 may also determine the order in which selectedcontent items are presented via the newsfeed. For example, the newsfeedmanager 145 determines that a user has a highest affinity for a specificuser and increases the number of content items in the newsfeedassociated with the specific user or modifies the positions in thenewsfeed where content items associated with the specific user arepresented. The newsfeed manager 145 may also account for actions by auser indicating a preference for topics of content items and selectscontent items having the same, or similar, topics for inclusion in thenewsfeed. Additionally, the newsfeed manager 145 may analyze contentitems received by social networking system 110 from various users andobtain information about user preferences or interactions from theanalyzed content items. This information may be used to refinesubsequent selection of content items for newsfeeds presented to varioususers.

The user interface server 140 links the social networking system 110 viathe network 105 to the one or more client devices 100, as well as to theone or more third party systems 112. The user interface server 140serves web pages, as well as other web-related content, such as JAVA®,FLASH®, XML and so forth. The user interface server 140 may receive androute messages between the social networking system 110 and the clientdevice 100, for example, instant messages, queued messages (e.g.,email), text messages, short message service (SMS) messages, or messagessent using any other suitable messaging technique. A user may send arequest to the user interface server 140 to upload information (e.g.,images or videos) that are stored in the content store 120.Additionally, the user interface server 140 may provide applicationprogramming interface (API) functionality to send data directly tonative client device operating systems, such as IOS®, ANDROID™, WEBOS®or RIM®.

The user interface server 140 generates user interfaces, such as webpages, with content from the social networking system 110. The userinterfaces are displayed to the user through a client device 100 andnetwork 105. The user interfaces provided by the user interface server140 allows a user to generate content items and interact with contentitems stored by the content store 120. For example, a user interface mayprovide a method for a user to provide text, pictures, videos, links,and advertisements to be used to generate content items. The userinterface server 140 configures a user interface based on the clientdevice 100 used to present it. For example, a user interface for asmartphone with a touchscreen may be configured differently from a userinterface for a web browser on a computer.

Process for Initiating a Private Session

FIG. 2 is an illustration of the process for initiating a privatesession for content items in the social networking system 110, inaccordance with an embodiment. In some embodiments, the process may havedifferent and/or additional steps than those described in conjunctionwith FIG. 2. Steps of the process may be performed in different ordersthan the order described in conjunction with FIG. 2. Some steps may beexecuted in parallel. Alternatively, some of the steps may be executedin parallel and some steps executed sequentially. Alternatively, somesteps may execute in a pipelined fashion such that execution of a stepis started before the execution of a previous step.

The social networking system 110 sends 200, for display on clientdevices 100 of users of the social networking system 110, a content itemamongst a plurality of content items associated with the users. Thesocial networking system 110 receives 205 user interactions with thecontent item from the client devices 100 of the users. The socialnetworking system 110 receives 210, from a client device 100 a of afirst user of the users of the social networking system 110, a selectionof the content item to view.

In response to the selection, the social networking system 110 providesfor display 215 on the client device 100 a of the first user a publicuser interface displaying at least some of the received userinteractions with the content item. The social networking system 110receives 220, from the client device of the first user, a request toinitiate a private session associated with the content item. The requestidentifies a subset of the users including the first user.

In response to the request from the first user, the social networkingsystem 110 provides for display 225 on the client device 100 a of thefirst user a private user interface for interacting with the contentitem by the identified subset of users. The social networking system 110receives 230, within the private session, user interactions with thecontent item from client devices 100 of the subset of the users. Thesocial networking system 110 provides for display 235 on the clientdevice 100 a of the first user, the received user interactions by thesubset of users in the private user interface. The private userinterface is configured to allow the first user to select between thepublic user interface and the private user interface.

Subsets of Social Networking Users

FIG. 3 is an illustration of subsets of users of the social networkingsystem 110, in accordance with an embodiment. The outer ellipseillustrates the users 300 of the social networking system 110. Thesmaller ellipses within the outer ellipse illustrate subsets of users,e.g., subset 302 of users includes user 314 and user 316; subset 304includes users 324 and 328; and subset 306 includes user 328 and user326. Some users, e.g., user 328, may be in two subsets, e.g., subset 304and subset 306, which intersect. Subset of users 308 includes user 336,user 338, user 342, and user 346. Subset of users 310 includes user 338,user 342, and user 340. Subset of users 312 includes user 344, user 342,and user 346. Some users, e.g., user 342, may be in three or moresubsets, e.g., subset 308, subset 310, and subset 312. Some users, e.g.,users 318, 320, 322, 330, 332, and 334, may not be in any subset.

In an embodiment, a subset of the users includes only social networkingconnections of the other users in the subset. For example, subset 302may include users 314 and 316 only if user 316 is a social networkingconnection of user 314. In an embodiment, a user in a subset may bedenoted as a first user and the subset may include other users only ifthey are social networking connections of the first user. For example,user 324 in subset 304 may be denoted as a first user. The user 328 maybe included in subset 304 only if user 328 is a social networkingconnection of user 324. User 326 may not be included in subset 304 evenif user 326 is a social networking connection of user 328 because user326 is not a social networking connection of the user 324 (denoted asthe first user).

In an embodiment, the social networking system 110 may provide arecommended subset of the users 300 to the first user. For example, thesocial networking system 110 may provide a recommended subset of theusers to a user 336 who has been denoted as a first user. The edge store135 may, for a social networking connection c of a plurality of socialnetworking connections of the first user 336, determine an affinitybetween the first user 336 and the social networking connection c of thefirst user as A_(336-c). Responsive to the affinity A_(336-c) exceedinga threshold T, the social networking system 110 may add the socialnetworking connection c to the recommended subset of the users. Forexample, if the affinity A₃₃₆₋₃₃₈ between the first user 336 and theuser 338 (who is a social networking connection of user 336) exceeds T,user 338 is added to the subset 308. User 330 who may also be a socialnetworking connection of user 336 may not be added to subset 308 becausethe affinity A₃₃₆₋₃₃₀ between the first user 336 and the user 330 doesnot exceed T.

In an embodiment, the edge store 135 may, for each connection c of thesocial networking connections of a first user u, determine an affinityA_(c-k) between the social networking connection c of the first user uand a content item k that both users are viewing. Responsive to theaffinity A_(c-k) exceeding a threshold T, the social networking system110 may add the social networking connection c to the recommended subsetof the users.

The social networking system 110 may also use the determination of suchaffinities by the edge store 135 to send a content item to a user whowould not normally see it in their newsfeed created by the newsfeedmanager 145. In embodiments, the social networking system 110 may createa ranking for content items for a user 314 based on the affinityA_(314-k) of the user 314 for the content items k. The newsfeed manager145 may normally send only certain content items having a higher rankingto the user 314 via the newsfeed of the user 314. The social networkingsystem 110 may also create a ranking for social networking connections cof the user 314 based on affinities between the user 314 and the socialnetworking connections c, denoted by A_(314-c). When there is a lowaffinity A_(316-k) between another user 316 (who is a social networkingconnection of user 314) and a content item k, the content item k may notnormally be sent to the user 316 in the newsfeed of the user 316. But incases where there is a high affinity A₃₁₄₋₃₁₆ between the user 314 andhis or her social networking connection 316, and a high affinity betweenthe user 314 and the content item k, but a low affinity between theconnection user 316 and content item k, the social networking system 110may modify the rankings and send the content item k to user 316 in thenewsfeed of the user 316.

In embodiments, the social networking system 110 may also use thedetermination of such affinities by the edge store 135 to recommendusers who are not social networking connections to become socialnetworking connections of each other. For example, when there is a lowaffinity A₃₁₄₋₃₁₆ between two users 314 and 316 (who are not socialnetworking connections), the user 316 may not normally be recommended tothe user 314. But in cases where there are high affinities A_(314-k) andA_(316-k) between the user 314 and the content item k, and between theuser 316 and the content item k, the social networking system 110 maymodify the rankings and recommend the user 316 to the user 316 in arecommended subset of users. The social networking system 110 may createa triangle of edges (where each edge represents an affinity value)between two users and a content item, and increase the affinity value ofan edge if the affinity values of the other two edges are high. Forexample, the first edge of the triangle denotes the affinity betweenuser 314 and content item k, the second edge of the triangle denotes theaffinity between user 316 and content item k, and the third edge of thetriangle denotes the affinity between user 314 and user 316. If any twoedges have a high affinity above a threshold, the value on the thirdedge may be ignored or incremented by the social networking system 110.

Public User Interface for User Interactions with Content Item Displayedon Client Device

FIG. 4 is an illustration of a public user interface for userinteractions with a content item 405 displayed on a client device 100 aof a user of a social networking system 110, in accordance with anembodiment. The client device 100 a of the first user includes a displaysurface 440, a bezel 445, and a scrollbar 450 displayed on the displaysurface 440. The display surface 440 is the physical area of the clientdevice 100 a where content items, e.g., 405, from the social networkingsystem 110 may be displayed.

The display surface 440 may be a liquid crystal display (LCD), organiclight-emitting diode (OLED), active-matrix OLED (AMOLED), etc. In an LCDdisplay surface 440, the light-modulating properties of liquid crystalsdisplay arbitrary images (as in a general-purpose computer display). Inan OLED display surface 440, an emissive electroluminescent layer (afilm of organic compound) emits light in response to an electriccurrent. In an AMOLED display surface 440, an active matrix of OLEDpixels that are deposited or integrated onto a TFT array generates lightupon electrical activation. The bezel 445 shown in FIG. 4 is anon-display area that surrounds the display surface 440. The scrollbar450 is a widget by which continuous text, pictures, or any other contentitems can be scrolled in a predetermined direction (up or down) on thedisplay surface 440 so that all of the content items, e.g., 405, anduser interactions (comments), e.g., 455, 460, 465, and 470, etc., can beviewed, even if only a few of the user interactions, e.g., 455, 460, and465, can be fully seen on the display surface 440 at one time.

The social networking system 110 sends a content item 405 amongst aplurality of content items associated with the users, e.g., 415, 420,425, and 430, etc., of the social networking system 110 for display onclient devices, e.g., 100 a, of the users. The content item 405 includesan image 410. The social networking system 110 receives userinteractions, e.g., 455, 460, 465, and 470, with the content item 405from the client devices of the users.

The social networking system 110 receives, from a client device 100 a ofa first user of the users of the social networking system, a selectionof the content item 405 to view. For example, the selection can be inthe form of a tap on the content item by a finger of the user. Thescreen 440 may have a capacitive touch surface to measure this tap andassociate it with the content item 405. In response to the selection ofthe content item 405, the social networking system 110 provides fordisplay on the client device 100 a of the first user a public userinterface 400 displaying at least some of the received userinteractions, e.g., 455, 460, 465, and 470, with the content item 405.The user interactions on the public user interface 400 are visible toany user viewing the content item 405 on his or her client device.

Private User Interface

FIG. 5 is an illustration of a private user interface 500 displayed on aclient device 100 a of a user of a social networking system 110, inaccordance with an embodiment. The private user interface, e.g., 500, isprovided for display on the client devices of only those users, e.g.,users 515, 520, and 535, who belong to a subset of users associated witha private session corresponding to the private user interface 500.

In FIG. 5, the social networking system 110 receives, from a clientdevice 100 a of a first user 515 of the users of the social networkingsystem 110, a selection of a content item 405 to view, as describedabove with reference to FIG. 4. The social networking system 110receives, from the client device 100 a of the first user 515, a requestto initiate a private session associated with the content item 405. Therequest identifies a subset of the users (e.g., 515, 520, and 535, etc.)including the first user 515. For example, the request may be made bythe user 515 touching an icon marked “initiate private user interface”on the display screen 440 of the client device 100 a. The subset of theusers (e.g., 515, 520, and 535, etc.) may be identified by the usertapping on user names in a directory of social networking contacts ofthe user 515.

In response to the request from the first user 515 on client device 100a, the social networking system 110 provides for display on the clientdevice 100 a of the first user 515 a private user interface 500 forinteracting with the content item by the identified subset of users 515,520, and 535, etc. The social networking system 110 receives, within theprivate session, user interactions (e.g., 550, 555, and 560) with thecontent item from client devices of the subset of the users (e.g., 515,520, and 535, etc.). The social networking system 110 provides, fordisplay on the client device 100 a of the first user 515, the receiveduser interactions (e.g., 550, 555, and 560) by the subset of users 515,520, and 535 in the private user interface 500. The private userinterface 500 is configured to allow the first user to select betweenthe public user interface and the private user interface 500. Theselection may be made by, for example, the user tapping on an iconcorresponding to each interface. For example icon 525 corresponds to theprivate user interface 500. The icon 530 corresponds to a public userinterface. The icons 540 and 545 correspond to private user interfacesinitiated by other users of the social networking system.

The social networking system 110 may receive, from the client device 100a of the first user 515, a selection of one of the public user interfaceicon 530 and the private user interface icon 525. The social networkingsystem 110 may receive, within a session corresponding to the selectedone of the public user interface icon 530 and the private user interfaceicon 525, a user interaction 550 with the content item 405 from theclient device 100 a of the first user 515. The social networking system110 sends for display, based on the selected one of the public userinterface icon 530 and the private user interface icon 525, one of (1)the received user interaction 550 in the public user interface fordisplay to the first user 515 and any of the users viewing the contentitem, and (2) the received user interaction 550 in the private userinterface 500 for display to any of the subset of the users 515, 520,and 535 viewing the content item 405.

The social networking system 110 may receive, from a client device of asecond user (e.g., user Jon H. in FIG. 5) of the users of the socialnetworking system 110, a request to initiate a second private sessionassociated with the content item 405. The request identifies a secondsubset of the users including the first user 515. The social networkingsystem 110 provides for display, on the client device 100 a of the firstuser 515, a second private user interface (corresponding to icon 540)for displaying user interactions by the second subset of users receivedwithin the second private session. The second private user interface(corresponding to icon 540) is positioned such that the first user canswitch between the first 500 and second private user interfaces to viewinteractions of users involved in the first and second private sessions,respectively.

The social networking system 110 may determine a first affinity A_(u-s1)between the first user u and the subset s1 of the users. The socialnetworking system 110 may determine a second affinity A_(u-s2) betweenthe first user u and the second subset s2 of the users. The socialnetworking system 110 may position the icon 540 corresponding to thesecond private user interface relative to the icon 525 corresponding tothe private user interface 500 based on relative values of the firstaffinity A_(u-s1) and the second affinity A_(u-s2). For example, if thefirst affinity A_(u-s1) is greater than the second affinity A_(u-s2),the social networking system 110 may position the icon 540 correspondingto the second private user interface to the right of the icon 525corresponding to the private user interface 500.

Process for Sending Real-Time User Interactions

FIG. 6 is an illustration of the process for sending real-time userinteractions with content items in a social networking system 110, inaccordance with an embodiment. In some embodiments, the process may havedifferent and/or additional steps than those described in conjunctionwith FIG. 6. Steps of the process may be performed in different ordersthan the order described in conjunction with FIG. 6. Some steps may beexecuted in parallel. Alternatively, some of the steps may be executedin parallel and some steps executed sequentially. Alternatively, somesteps may execute in a pipelined fashion such that execution of a stepis started before the execution of a previous step.

The social networking system 110 sends 600 a content item among othercontent items associated with the users of the social networking system110 for display on client devices 100 of the users via the userinterface server 140. The social networking system 110 receives 605,from a client device 100 a of a first user of the social networkingsystem 110, information indicating that the first user is currentlyviewing the content item. As one example, if the user has selected thecontent item in a newsfeed, the user can be directed to a content itempage (e.g., a permalink) that displays the content item on a page alongwith the associated comments and a section that shows the reactions thathave been received so far by other users on the content item. When theuser selects the content item, the system 110 receives a notification ofthis, and when the user has this content item page open, the user isconsidered by the social networking system 110 to be currently viewingthe content item. As another example, the social networking system 110may include tracking pixels in the content items sent to client devices100 such that when a content item is presented via a browser of a clientdevice 100 (e.g., in a newsfeed with other content items), a particularprogram or code (or set of instructions) is executed by the browser.This code associated with a tracking pixel may cause a browseridentifier associated with the client device 100 to be sent to the userinteraction manager 135. A tracking pixel may be a transparent 1×1image, an iframe, or other suitable user interface object. The userinteraction store 130 may store the browser identifier associated withthe user, information describing the user interaction performed, and atime stamp value indicating the time at which the user interaction wasperformed. As a further example, pixels and other tracking devices canbe included in content items that fire to indicate when the content itemis currently in view on the screen on a user's mobile phone.

Responsive to receiving the information, the social networking system110 identifies 610 a second user (client device 100 b) connected to thefirst user (client device 100 a) within the social networking system110, wherein the second user (client device 100 b) is performing a userinteraction with the content item while the first user is currentlyviewing the content item. The social networking system 110 determines615 a type of emotion or reaction associated with the user interactionperformed by the second user. The social networking system 110 sends 620for display to the client device 100 a of the first user, a widgetidentifying the second user (client device 100 b) and/or identifying thetype of emotion. A widget is a small on-screen icon with limitedfunctionality that can be executed within a social media page. Widgetsmay be created in Dynamic Hypertext Markup Language (DHTML), AdobeFlash, etc. The widget is configured to move across the content itemdisplayed on the client device 100 a while the first user is currentlyviewing the content item.

Responsive to receiving from the client device a user interaction by thefirst user with the widget, the social networking system 110 sends 625for display to the client device 100 a information indicating the seconduser in a field for receiving comments by the first user. For example,if the first user taps on the icon/widget moving across the contentitem, the name of the second user appears in the comments field suchthat the first user can easily write a comment about the second user (orpossibly about the second user's interaction/emotion that wasdisplayed). In one embodiment, this entry of the second user's name inthe comments field provides a tag of the second user by the first userin the comment, such that the second user is notified that the firstuser commented about her.

Sending a Content Item to a Client Device

FIG. 7 is an illustration of displaying a content item on a clientdevice 100 a of a first user of a social networking system 110, inaccordance with an embodiment. The client device 100 a of the first userincludes a display surface 725, a bezel 730, and a scrollbar 735displayed on the display surface 725. The bezel 730 shown in FIG. 7 is anon-display area that surrounds the display surface 725. The scrollbar735 is a widget by which continuous text, pictures, or any other contentitems can be scrolled in a predetermined direction (up or down) on thedisplay surface 725 so that all of the content items, e.g., 705, 715,720, 740, etc., can be viewed, even if only a few of the content items,e.g., 705, 715, and 720, can be fully seen on the display surface 725 atone time.

The social networking system 110 sends a content item 705 amongst aplurality of content items, e.g., 715, 720, 740, etc., associated withthe users of the social networking system 110 for display on clientdevices, e.g., 100 a, of the users. The content item 705 includes animage 710. The content items 715, 720, and 740 include text as shown inFIG. 7. The user interaction manager 135 may determine a type of emotionassociated with a user interaction with a content item 705 performed bya user using icons, e.g., icon 750, displayed within or adjacent to thecontent item 705.

The social networking system may store a mapping from user interactionsto types of emotions associated with the user interactions. For example,if the first user (client device 100 a) clicks on the icon 750, it mayrepresent that the type of emotion associated with the user interactionwith the content item 705 performed by the first user is “like.” If thefirst user clicks on the icon 755, it may represent that the type ofemotion associated with the user interaction with the content item 705performed by the first user is “love.” If the first user clicks on theicon 760, it may represent that the type of emotion associated with theuser interaction with the content item 705 performed by the first useris “haha.” If the first user clicks on the icon 765, it may representthat the type of emotion associated with the user interaction with thecontent item 705 performed by the first user is “wow.” If the first userclicks on the icon 770, it may represent that the type of emotionassociated with the user interaction with the content item 705 performedby the first user is “sad.” If the first user clicks on the icon 775, itmay represent that the type of emotion associated with the userinteraction with the content item 705 performed by the first user is“angry.”

The social networking system 110 may send the content item 705 fordisplay in a newsfeed 700 on the client device 100 a. The newsfeedmanager 145 may present content items e.g., 715, 720, 740, etc., to theuser through the newsfeed 700, which includes a plurality of contentitems selected for presentation to the user. In embodiments, the socialnetworking system 110 may provide for display the content item 705 in aview of the content item 705 itself, called the permalink. In this view,no other content items would be displayed. A permalink (or permanentlink) is a URL created by the social networking system 110 that isintended to remain unchanged, yielding a hyperlink that is lesssusceptible to link rot. Permalinks are often rendered simply, that is,as friendly URLs, so as to be easy for people to type and remember. Mostmodern blogging and content-syndication software systems support suchlinks. Sometimes URL shortening is used to create them. A permalink is atype of persistent identifier and the word permalink is sometimes usedas a synonym of persistent identifier. More often, though, permalink isapplied to persistent identifiers which are generated by a socialnetworking system 110 for pages served by that system.

The user interaction manager 135 may receive, from the client device 100a of the first user of the social networking system 110, informationdescribing a user interaction indicating that the first user iscurrently viewing the content item 705. The information may be a clickon the content item 705 or information conveying that the user isscrolling using the scrollbar 735 through the newsfeed 700 containingthe content item 705 and has paused scrolling.

Identifying a Second User

FIG. 8 is an illustration of a second user (client device 100 b)connected to the first user (client device 100 a) within the socialnetworking system 110, in accordance with an embodiment. Responsive toreceiving, from the client device 100 a, information indicating that thefirst user is currently viewing the content item 705, the socialnetworking system 110 identifies one or more other users connected tothe first user within the social networking system 110, wherein each ofthe one or more other users performed a user interaction with thecontent item 705 within a first time period t₁. The time period t₁denotes the time period while the first user is currently viewing thecontent item. The social networking system identifies the one or moreother users using information from the user interaction store 130, userinteraction manager 135, user profile store 115, and edge store 125. Thesocial networking system 110 selects a second user (client device 100 b)from the one or more other users based on an affinity between the firstuser (client device 100 a) and the second user.

The social networking system 110 may select the second user (clientdevice 100 b) from the one or more other users by determining a numberhi, of past user interactions between a user u and the first user(client device 100 a), for each user u of the one or more other users.The social networking system 110 may determine the number hi, of pastuser interactions from the edge store 125 and user interaction store130. The social networking system 110 may identify the second user(client device 100 b) as having the highest number of past userinteractions Max_(u)(I_(1u)) between each user u and the first user.

The social networking system 110 may select the second user (clientdevice 100 b) from the one or more other users by determining a topic cof the content item 705, as described above with reference to FIG. 1.The social networking system 110 may, for each user u of the one or moreother users, determining a number of past user interactions I_(uc)between the user u and content items corresponding to the topic c, basedon information from the content store 120, edge store 125, and userinteraction store 130. The social networking system 110 may identify thesecond user as having the highest number of past user interactionsMax_(u)(I_(uc)) between each user u and content items corresponding tothe topic c.

The social networking system 110 may select the second user (clientdevice 100 b) from the one or more other users by, for each user u ofthe one or more other users, determining geolocation distances G_(1u)between the client device 100 a of the first user and the client devices(100 b, 100 c, etc.,) of the other users, as described above withreference to FIG. 1. The social networking system 110 may identify thesecond user as having the smallest geolocation distance Min_(u)(G_(1u))between the client device of each user u and the client device of thefirst user (client device 100 a).

The social networking system 110 may determine the length of the firsttime period t₁ by storing a mapping from numbers of users N_(u) tolengths of time period t₁. For example, if N_(u) is between 10 and 20,then t₁ is 10 seconds. If N_(u) is between 20 and 30, then t₁ may be 5seconds. The mapping may be stored as a mapping function in which eachelement of the N_(u) domain is paired with exactly one element in the t₁domain. The mapping may be stored as a diagram including two parallelcolumns for numbers of users N_(u) and lengths of time periodrespectively. The social networking system may also store the mapping asa relational database structured to recognize relations among storeditems of information, e.g., numbers of users N_(u) and lengths of timeperiod t₁.

The social networking system 110 may determine the number of the one ormore other users who interacted with content item 705 from the userinteraction store 130 and user interaction manager 135. The socialnetworking system 110 may identify the length of the first time periodt₁ corresponding to the determined number of the one or more other usersbased on the mapping. This method provides the benefit of using ashorter time period t₁ when the number of the one or more other userswho interacted with content item 705 is large. In this way, a lessernumber of candidate users are selected for the system to initiateprivate sessions between. This method also provides the benefit ofreduced computer processing to select the second user.

The identified second user is associated with client device 100 b asshown in FIG. 8. The social networking system 110 communicates withclient device 100 b and client device 100 a over the network 105, asillustrated and described earlier with reference to FIG. 1. The seconduser is a social networking connection of the first user (client device100 a) within the social networking system 110. The social networkingsystem 110 may retrieve information from the edge store 125 describingsocial networking connections of the first user (client device 100 a) asedges. The edge 800 shown in FIG. 8 shows that the second user (clientdevice 100 b) is connected to the first user (client device 100 a).

In one embodiment, the second user, e.g., on client device 100 b, mayinteract with content items, e.g., 705, in a newsfeed, e.g., 820. Whilethe second user associated with client device 100 b received the contentitem 705 in the newsfeed 820, as displayed on client device 100 b, theother content items (805, 810 and 815) in the second user's newsfeed 820are different from the content items in the newsfeed 700 in clientdevice 100 a. Each user may thus receive a distinct newsfeed. In theexample shown in FIG. 8, the second user performed an interaction withthe content item 705 by tapping on icon 825 within the first time periodt₁. The type of emotion associated with the second user's interactionwith the content item 705 is “like” (icon 825).

Widget Identifying the Second User

FIG. 9 is an illustration of a profile image 900 of the second user(client device 100 b) in a permalink 905 of the content item 705,displayed on the device of the first user (client device 100 a) of thesocial networking system 110, in accordance with an embodiment. Thepermalink 905 is visible on client device 100 a because the first userselected content item 705 on client device 100 a. The profile image 900of the second user may be displayed as a widget. The social networkingsystem 110 sends for display to the client device of the first user(client device 100 a), one or more widgets 900 including informationidentifying the second user (client device 100 b). As shown in FIG. 9,the first user has scrolled down the permalink 905 to view comments 915,920, etc. Content item 705 (above comment 915 in the permalink 905) isno longer visible on client device 100 a. Other comments 940 and 945 forcontent item 705 are now visible lower in the permalink 905.

The information identifying the second user (client device 100 b) mayinclude a profile image 900 of the second user, an avatar of the seconduser, text representing the second user's name, coordinates representingthe second user's geolocation, or a screenname of the second user, allobtained from the user profile store 115. The coordinates may be part ofa coordinate system that enables every location on Earth to be specifiedby a set of numbers, letters or symbols. The coordinates representingthe second user's geolocation may be latitude, longitude, altitude, GPScoordinates, etc. In embodiments, the widget 900 may be displayed in apermalink on client device 100 a.

Some benefits and advantages of this method are that the first user(client device 100 a) can efficiently be notified in real-time of otherusers' interactions with the content item 705. One benefit overconventional methods is that in conventional methods, the first user(client device 100 a) may not see interactions that would be of interestto him or her because the interactions of interest may be aggregatedwith other interactions or because the number of interactions with thecontent item is too large. The first user will see other users'interactions in real time, thereby enabling the first user to interactwith other users' interactions in a timely way. In addition, even if thefirst user is scrolling down his or her newsfeed 700 or permalink 905,as shown in FIG. 9, and the content item 705 is not visible, he or shewill still be notified of an interaction from another user because thenotification of the interaction will be displayed via a widget 900 onthe client device 100 a and not at the very top of the permalink 905near the content item 705, which is not visible to the first user. Inembodiments, the widgets 900 displayed move or float across the screento capture the first user's attention.

Icon Identifying a Type of Emotion

FIG. 10 is an illustration of a widget 1000 identifying a type ofemotion, associated with the reaction of the second user, in thepermalink 905 displayed on a client device 100 a of a user of the socialnetworking system 110, in accordance with an embodiment. The icon 1000may be a widget identifying a type of emotion associated with the seconduser's interaction. The social networking system 110 may store a mappingfrom user interactions to types of emotions associated with the userinteractions, as illustrated and described above with reference to FIG.7. The social networking system 110 may store the mapping from userinteractions to types of emotions as a mapping function, a mappingdiagram, or a relational database, as described above with reference toFIG. 8. The social networking system 110 may receive, from the clientdevice 100 b of the second user, the user interaction with the contentitem 705 performed by the second user. The social networking system 110may identify the type of emotion corresponding to the received userinteraction with the content item 705 performed by the second user basedon the mapping. In the example shown in FIG. 10, the type of emotioncorresponding to the user interaction with the content item 705performed by the second user is “like.” In one embodiment, the userprofile image icon 900 from FIG. 9 turns into the emotion icon 1000 atsome point as it moves across the permalink 905. In some embodiments,only the profile image 900 icon or only the emotion icon 1000 isprovided. The icons, e.g., 900 or 1000, can float across the page, suchas from the bottom to the top of the page, or otherwise move to attractthe viewing user's attention.

The social networking system 110 may send to the first user (clientdevice 100 a) one or more widgets, such as the icon 1000 representing anemotion associated with the second user's interaction, as shown in FIG.10, or text representing the type of emotion associated with the userinteraction, e.g., “LIKE.” The one or more widgets 1000 representing anemotion may be sent by the social networking system 110 to the firstuser's device 100 a, such that they appear after the one or more widgets900 identifying the second user in time, illustrated above withreference to FIG. 9. The one or more widgets 1000 representing anemotion may be superimposed on the one or more widgets 900 identifyingthe second user. In embodiments, the widgets 900 and 1000 displayed moveacross the screen to capture the first user's attention.

The widgets 1000 may be configured to receive a user interaction fromthe client device of the first user (client device 100 a) within asecond time period t₂. The length of the second time period t₂ may bedetermined by the social networking system 110 based on the number ofthe one or more other users who performed a user interaction with thecontent item 305 within the first time period t₁. The length of thesecond time period t₂ may decrease as the number of the one or moreother users increases. This method provides the benefit of using ashorter time period for the first user to respond and for the socialnetworking system 110 to initiate a private session when the number ofcandidate second users who interacted with content item 705 is large. Inthis way, if the first user does not respond within the second timeperiod t₂, the social networking system may stop displaying the widgets1000 and may provide other widgets identifying another user (e.g.,client device 100 c) who performed a user interaction with content item705 within the first time period t₁, as described above with referenceto FIG. 8.

Automatic Identification of the Second User in a Comments Field

FIG. 11 is an illustration of a field 1115 for receiving comments by thefirst user on the client device 100 a, in accordance with an embodiment.The field 1115 contains information 1120 indicating the identity of thesecond user on the first user's device 100 a to communicate with thesecond user's device 100 b. Responsive to receiving, from the clientdevice of the first user (client device 100 a), a user interaction withthe one or more widgets 1000 within the second time period t₂, the userinterface server 140 sends for display to the client device 100 ainformation 1120 indicating the second user in the field 1115 forreceiving comments by the first user.

The user interface server 140 may configure for display on the clientdevice 100 a of the first user the field 1115 and a text user interface1125 for entering a comment 1110 directed to the second user indicatedby name 1120. In one embodiment, the text user interface 1125 isdisplayed at the bottom of the permalink 905 on the client device 110 a.Because the icon 1000 (shown in FIG. 10) is no longer visible after thefirst user has interacted with it, the entire comment 940 (partiallyhidden by the icon 1000 in FIG. 10) is now visible in the permalink 905on client device 100 a. When the social networking system 110 displaysthe field 1115 and configures for display the text user interface 1125,it may pre-enter text characters 1120 corresponding to the second user'sname or screenname in the text user interface 1125 as shown in FIG. 11.This ensures that any comment 1110 entered at the client device 100 atags the second user on client device 100 b. If the first user providesa text comment 1110, the online networking system 110 provides fordisplay to the first user and the second user the comment 1110. Forexample, the comment 1110 appears as a comment 1135 at the bottom of thescreen of the client device 100 b of the second user in FIG. 11. Theidentity of the sending first user 1130 is also displayed in comment1135.

In an embodiment, the comment 1110 may be displayed as an incoming textmessage on the client device 100 b of the second user. In an embodiment,the user interface server 140 may initiate a private session 1100between the client device 100 a of the first user and the client deviceof the second user 100 b. The advantage of this method is that it allowsthe first and second users to interact privately and in real time basedon the emotion associated with the second user's interaction with thecontent item 705. The social networking system 110 may initiate theprivate session 1100 as part of protocols and services at theapplication layer, at the session layer, or at the transport layer inthe Open Systems Interconnection (OSI) model. The social networkingsystem 110 may initiate the private session 1100 using the SessionInitiation Protocol (SIP), a communications protocol for signaling andcontrolling voice and video calls. The session 1100 may be initiatedover Internet Protocol (IP) networks. The session 1100 may employ designelements similar to the HTTP request/response transaction model. Eachmessage sent by the client device 100 a or 100 b may include a clientrequest that invokes a particular method or function on the userinterface server 140 and at least one response.

In an embodiment, the user interface server 140 may configure fordisplay on the client device 100 a of the first user a user interfacefor interacting with the client device 100 b of the second user via theprivate session. The user interface may include a text messaginginterface 1125, a video chat interface, a telephone call interface, etc.The text messaging interface 1125, illustrated in FIG. 11 may be aninterface for sending electronic messages, consisting of alphabetic andnumeric characters over a cellular phone network, cable network, LocalArea Network, etc. The text messaging interface 1125 may includemessages sent using the Short Message Service (SMS), multimedia messages(known as MIMS) containing digital images, videos, and sound content, aswell as ideograms known as emoji (happy faces and other icons). When thesocial networking system 110 displays the field 1115 and configures fordisplay the text messaging interface 1125, it may pre-enter textcharacters corresponding to the second user's name 1120 or screenname inthe text messaging interface 1125 as shown in FIG. 11. This ensures thatany message sent by the client device 100 a within the private session1100 is received only by client device 100 b or another client deviceassociated with the second user. If the first user provides a textcomment 1110, the online networking system 110 provides for display tothe first user and the second user the comment 1110. The comment 1110 isdisplayed as an incoming message on the client device 100 b of thesecond user. The message includes the name or screenname of the senderof the message 1115 (i.e., the first user).

In embodiments, the social networking system may configure for display avideo chat interface on the client device 100 a that enables thereception and transmission of audio-video signals by the client device100 a and client device 100 b at different locations, for communicationbetween the first user and second in real-time. In embodiments, theprivate session 1100 may include sending still images between clientdevices every few seconds. The advantage of this method is that incommercial and corporate settings, it may facilitate meetings andconferences, typically between parties that already have establishedrelationships on the social networking system 110. As a result, byreducing the need to travel to bring people together the method alsocontributes to reductions in carbon emissions.

In embodiments, the social networking system 110 may configure fordisplay on the client device 100 a a telephone call interface forsetting up a phone call over a cellular network. The private session1100 may thus be initiated as part of a communication network where thelast link is wireless. In this example, the private session isdistributed over land cells, where each cell is served by at least onefixed-location transceiver, known as a cell site or base station.

In embodiments, the content items, icons, widgets, text messaginginterface, video chat interface, telephone call interface, etc.,disclosed herein are sent or configured for display by the socialnetworking system 110 for display in a newsfeed. In embodiments, thecontent items, icons, widgets, text messaging interface, video chatinterface, telephone call interface, etc., are sent or configured fordisplay by the social networking system 110 for display in a permalink,e.g., 905.

Alternate Embodiments

The foregoing description of the embodiments of the invention has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the invention to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a non-transitory, tangible computer readable storagemedium, or any type of media suitable for storing electronicinstructions, which may be coupled to a computer system bus.Furthermore, any computing systems referred to in the specification mayinclude a single processor or may be architectures employing multipleprocessor designs for increased computing capability.

Embodiments of the invention may also relate to a product that isproduced by a computing process described herein. Such a product maycomprise information resulting from a computing process, where theinformation is stored on a non-transitory, tangible computer readablestorage medium and may include any embodiment of a computer programproduct or other data combination described herein.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsof the invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

What is claimed is:
 1. A method comprising: sending, for display onclient devices of users of a social networking system, a content itemamongst a plurality of content items associated with the users;receiving user interactions with the content item from the clientdevices of the users; receiving, from a client device of a first user ofthe users of the social networking system, a selection of the contentitem to view; in response to the selection, providing for display on theclient device of the first user a public user interface displaying atleast some of the received user interactions with the content item;receiving, from the client device of the first user, a request toinitiate a private session associated with the content item, the requestidentifying a subset of the users including the first user; in responseto the request from the first user, providing for display on the clientdevice of the first user a private user interface for interacting withthe content item by the identified subset of users; receiving, withinthe private session, user interactions with the content item from clientdevices of the subset of the users; providing, for display on the clientdevice of the first user, the received user interactions by the subsetof users in the private user interface, the private user interfaceconfigured to allow the first user to select between the public userinterface and the private user interface; receiving, from a clientdevice of a second user of the users of the social networking system, arequest to initiate a second private session associated with the contentitem, the request identifying a second subset of the users including thefirst user; and providing for display, on the client device of the firstuser, a second private user interface for displaying user interactionsby the second subset of users received within the second privatesession, the second private user interface positioned such that thefirst user can switch between the first and second private userinterfaces to view interactions of users involved in the first andsecond private sessions, respectively.
 2. The method of claim 1, whereinthe subset of the users comprises only social networking connections ofthe first user.
 3. The method of claim 1, further comprising providing arecommended subset of the users to the first user by, for each of aplurality of social networking connections of the first user:determining an affinity between the first user and the social networkingconnection of the first user; and responsive to the affinity exceeding athreshold, adding the social networking connection to the recommendedsubset of the users.
 4. The method of claim 1, further comprisingproviding a recommended subset of the users to the first user by, foreach of a plurality of social networking connections of the first user:determining an affinity between the social networking connection of thefirst user and the content item; and responsive to the affinityexceeding a threshold, adding the social networking connection to therecommended subset of the users.
 5. The method of claim 1, furthercomprising: receiving, from the client device of the first user, aselection of an interface of the public user interface, the firstprivate user interface, and the second private user interface;receiving, within a session corresponding to the selected interface, auser interaction with the content item from the client device of thefirst user; and sending for display, based on the selected interface:the received user interaction to users able to view the selectedinterface.
 6. The method of claim 1, further comprising: determining afirst affinity between the first user and the subset of the users; anddetermining a second affinity between the first user and the secondsubset of the users, wherein the second private user interface ispositioned relative to the private user interface based on relativevalues of the first affinity and the second affinity.
 7. A methodcomprising: receiving user interactions with a content item from clientdevices of users of a social networking system; providing for display,on each of a plurality of the client devices, a public user interfacedisplaying at least some of the received user interactions with thecontent item; receiving, from a client device of a first user, a requestto initiate a first private session associated with the content item,the request identifying a subset of the users including the first user;receiving, within the first private session, first private userinteractions with the content item from client devices of the subset ofthe users; receiving, in response to an initiation of a second privatesession among a second subset of the users responsive a request from asecond user of the users of the social networking system, second privateuser interactions with the content item within the second privatesession from client devices of the second subset of the users, thesecond subset of users including the first user; and providing fordisplay on the client device of the first user, a first private userinterface displaying the first private user interactions received withinthe first private session and a second private user interface displayingthe second private user interactions received within the second privatesession, the first private user interface and the second private userinterface positioned such that the first user can switch between thepublic user interface, the first private interface, and the secondprivate interface.
 8. The method of claim 7, wherein: the subset of theusers comprises the first user and other users of the subset of theusers; and the other users of the subset of the users are socialnetworking connections of the first user.
 9. The method of claim 7,further comprising providing a recommended subset of the users to thefirst user by, for each of a plurality of social networking connectionsof the first user: determining an affinity between the first user andthe social networking connection of the first user; and responsive tothe affinity exceeding a threshold, adding the social networkingconnection to the recommended subset of the users.
 10. The method ofclaim 7, further comprising providing a recommended subset of the usersto the first user by, for each of a plurality of social networkingconnections of the first user: determining an affinity between thesocial networking connection of the first user and the content item; andresponsive to the affinity exceeding a threshold, adding the socialnetworking connection to the recommended subset of the users.
 11. Themethod of claim 7, further comprising: receiving, from the client deviceof the first user, a selection of one of the public user interface, thefirst private user interface, and the second private user interface;receiving, within a session corresponding to the selected interface, auser interaction with the content item from the client device of thefirst user; and sending for display, based on the selected interface:the received user interaction to the users able to view the selectedinterface.
 12. The method of claim 7, further comprising: determining afirst affinity between the first user and the subset of the users; anddetermining a second affinity between the first user and the secondsubset of the users, wherein the second private user interface ispositioned relative to the private user interface based on relativevalues of the first affinity and the second affinity.
 13. Anon-transitory computer-readable storage medium comprising instructionsexecutable by a processor, the instructions comprising: instructions forreceiving user interactions with a content item from client devices ofusers of a social networking system; instructions for providing fordisplay, on each of a plurality of the client devices, a public userinterface displaying at least some of the received user interactionswith the content item; instructions for receiving, from a client deviceof a first user, a request to initiate a first private sessionassociated with the content item, the request identifying a subset ofthe users including the first user; instructions for receiving, withinthe first private session, first private user interactions with thecontent item from client devices of the subset of the users;instructions for receiving, in response to an initiation of a secondprivate session among a second subset of the users responsive a requestfrom a second user of the users of the social networking system, secondprivate user interactions with the content item within the secondprivate session from client devices of the second subset of the users,the second subset of users including the first user; and instructionsfor providing for display on the client device of the first user, afirst private user interface displaying the first private userinteractions received within the first private session and a secondprivate user interface displaying the second private user interactionsreceived within the second private session, the first private userinterface and the second private user interface positioned such that thefirst user can switch between the public user interface, the firstprivate interface, and the second private interface.
 14. Thenon-transitory computer-readable storage medium of claim 13, wherein:the subset of the users comprises the first user and other users of thesubset of the users; and the other users of the subset of the users aresocial networking connections of the first user.
 15. The non-transitorycomputer-readable storage medium of claim 13, the instructions furthercomprising instructions for providing a recommended subset of the usersto the first user by, for each of a plurality of social networkingconnections of the first user: determining an affinity between the firstuser and the social networking connection of the first user; andresponsive to the affinity exceeding a threshold, adding the socialnetworking connection to the recommended subset of the users.
 16. Thenon-transitory computer-readable storage medium of claim 13, theinstructions further comprising instructions for providing a recommendedsubset of the users to the first user by, for each of a plurality ofsocial networking connections of the first user: determining an affinitybetween the social networking connection of the first user and thecontent item; and responsive to the affinity exceeding a threshold,adding the social networking connection to the recommended subset of theusers.
 17. The non-transitory computer-readable storage medium of claim13, the instructions further comprising: instructions for receiving,from the client device of the first user, a selection of one of thepublic user interface, the first private user interface, and the secondprivate user interface; instructions for receiving, within a sessioncorresponding to the selected interface, a user interaction with thecontent item from the client device of the first user; and instructionsfor sending for display, based on the selected interface: the receiveduser interaction to the users able to view the selected interface.